package com.example.linegraph; import java.util.ArrayList; import java.util.List; import org.achartengine.ChartFactory; import org.achartengine.chart.PointStyle; import org.achartengine.chart.BarChart.Type; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.model.XYSeries; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); XYMultipleSeriesDataset dataset = createData(); XYMultipleSeriesRenderer render = renderGraph(); Intent intent = ChartFactory.getLineChartIntent(this, dataset, render); startActivity(intent); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) { int length = titles.length; for (int i = 0; i < length; i++) { XYSeries series = new XYSeries(titles[i], scale); double[] xV = xValues.get(i); double[] yV = yValues.get(i); int seriesLength = xV.length; for (int k = 0; k < seriesLength; k++) { series.add(xV[k], yV[k]); } dataset.addSeries(series); } } public XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues, List<double[]> yValues) { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); addXYSeries(dataset, titles, xValues, yValues, 0); return dataset; } public XYMultipleSeriesDataset createData(){ List<double[]> xVals = new ArrayList<double[]>(); xVals.add( new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); xVals.add( new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); //look into this more List<double[]> List<double[]> yVals = new ArrayList<double[]>(); yVals.add( new double[]{5.5, 12, 13.5, 16, 20, 30, 40, 42, 43, 45}); yVals.add( new double[]{1.2, 3, 10, 12, 13, 25, 27, 30, 35, 40,}); String[] titles = new String[]{"series1", "series2"}; return buildDataset(titles, xVals, yVals); } public XYMultipleSeriesRenderer renderGraph(){ XYMultipleSeriesRenderer r = new XYMultipleSeriesRenderer(); String [] desc = new String[] {"Title", "Xaxsis", "Yaxsis"}; int [] margins = new int[] {40,30,30,30}; r.setXAxisMin(0); r.setXAxisMax(10); r.setYAxisMin(0); r.setYAxisMax(50); r.setChartTitle(desc[0]); r.setXTitle(desc[1]); r.setYTitle(desc[2]); r.setAxisTitleTextSize(20); r.setChartTitleTextSize(25); r.setLabelsTextSize(10); r.setLegendTextSize(15); r.setXRoundedLabels(true); r.setMargins(margins); r.setPointSize(5); r.setGridColor(Color.DKGRAY); r.setShowGrid(true); r.setAxesColor(Color.BLACK); r.setExternalZoomEnabled(true); int[] colors = new int[] { Color.BLUE, Color.GREEN }; PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND }; for (int i = 0; i < 2; i++) { XYSeriesRenderer s = new XYSeriesRenderer(); s.setColor(colors[i]); s.setPointStyle(styles[i]); r.addSeriesRenderer(s); } return r; } }